package br.com.sgpv2.entity.faixacomparativo;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.sun.istack.internal.NotNull;

/**
 * Representa uma entidade Item faixa de comparativo no sistema.
 */
@Entity
@Table(name = "ifc_item_faixa_comparativo")
@SequenceGenerator(name = "sequenceItemFaixaComparativo", sequenceName = "ifc_item_faixa_comparativo_ifc_id_seq")
public class ItemFaixaComparativo implements Serializable {

	private int id;
	private BigDecimal valorInicial;
	private BigDecimal valorFinal;
	private BigDecimal sinal;
	private BigDecimal percentual;
	private long parcela;
	private FaixaComparativo faixaComparativo;

	/**
	 * Recupera o valor do ID da entidade.
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "ifc_id", nullable = false)
	public int getId() {
		return id;
	}

	/**
	 * configura o valor do ID.
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * Recupera o valor inicial.
	 */
	@Column(name = "ifc_valor_inicial")
	@NotNull
	public BigDecimal getValorInicial() {
		return valorInicial;
	}

	/**
	 * Configura o valor inicial.
	 */
	public void setValorInicial(BigDecimal valorInicial) {
		this.valorInicial = valorInicial;
	}

	/**
	 * Recupera o valor final.
	 */
	@Column(name = "ifc_valor_final")
	@NotNull
	public BigDecimal getValorFinal() {
		return valorFinal;
	}

	/**
	 * Configura o valor final.
	 */
	public void setValorFinal(BigDecimal valorFinal) {
		this.valorFinal = valorFinal;
	}

	/**
	 * Recupera o valor do sinal.
	 */
	@Column(name = "ifc_sinal")
	@NotNull
	public BigDecimal getSinal() {
		return sinal;
	}

	/**
	 * Configura o valor do sinal.
	 */
	public void setSinal(BigDecimal sinal) {
		this.sinal = sinal;
	}

	/**
	 * Recupera o valor do percentual.
	 */
	@Column(name = "ifc_percentual")
	@NotNull
	public BigDecimal getPercentual() {
		return percentual;
	}

	/**
	 * Configura o valor do percentual.
	 */
	public void setPercentual(BigDecimal percentual) {
		this.percentual = percentual;
	}

	/**
	 * Recupera o valor da parcela.
	 */
	@Column(name = "ifc_parcela")
	@NotNull
	public long getParcela() {
		return parcela;
	}

	/**
	 * Configura o valor da parcela.
	 */
	public void setParcela(long parcela) {
		this.parcela = parcela;
	}

	/**
	 * Recupera o valor do ID de faixa de comparativo.
	 */
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "fac_id", nullable = false)
	public FaixaComparativo getFaixaComparativo() {
		return faixaComparativo;
	}

	/**
	 * Configura o valor do ID de faixa de comparativo.
	 */
	public void setFaixaComparativo(FaixaComparativo faixaComparativo) {
		this.faixaComparativo = faixaComparativo;
	}

}
